The Internet community assigns blocks of Internet addresses to various corporations. These corporations include Internet service providers (ISP's) who buy large blocks of Internet addresses to deploy to their users. IP networks can be subdivided into IP subnetworks. The use of IP subnetworks allows the partitioning of Internet transported information, or traffic, to certain subsets of users. By associating the subsets of users with individual subnetwork addresses, it is possible to send traffic to only that group of users defined for a particular subnetwork, using a single IP subnetwork address. For example, in a corporate environment where it is desirable to have different groups and subgroups of users that receive different levels of information, it is possible to have an entire group of users partitioned for a particular level or type of information, and simultaneously have a subset of that group partitioned for a different level of information. By implementing a policy based system for the routing of network traffic, it is possible to define multiple IP subnetworks.
Currently, IP subnetworks are configured manually. Using network management, as known in the art, a router is configured manually, a priori with subnetwork address information. In order to extend connectivity among multiple IP subnetworks, a subnetwork acts as a connection point between the other subnetworks, thus requiring complex routing protocols. Additionally, if a remote station is dynamically IP addressed, for example, through the use of the well known dynamic host configuration protocol (DHCP), the only way to route information to it is by having the IP subnetwork preconfigured as discussed above. Current router engines build router tables defining the address location for the various networks. Many of these router tables support the use of subnetworks; however, the tables are manually configured as subnetworks, and special policies are defined within the router in order to use the subnetworks. This presents many configuration problems and requires manual configuration. The present invention addresses the problems associated with manual configuration of static routing tables to provide support of IP subnetworks by making the creation of the routing tables an adaptive dynamic process.
The Internet community has defined an organizational framework of data, which provides a naming authority allowing any company or group to define information within the framework in a way that allows any or all of this data to coexist. Under the control of the International Telecommunications Union (ITU) and the International Standards Organization (ISO), the organizational framework has been constructed as a tree. The root of the tree is managed by the ITU and the ISO. Branches extending from the tree may be assigned to other organizations for defining the child branches for that branch. A MIB is a distributed database that describes a set of items that management applications and agents use to report and control managed devices. Management applications can include, but are not limited to configuration, discovery, and topology managers. The MIB of the present invention is a configuration MIB. A DSL remote terminal unit (RTU) can be one of these managed devices. The RTU employs the IP Injection MIB to create dynamically the routing tables in accordance with the established forwarding policies which will be described in detail hereafter.
A MIB begins with a line naming the MIB. The name of the MIB is followed by an import statement which allows the definition of other MIB's that may be incorporated into the MIB being defined. These import statements are typically called Requests for Comments (RFC's). Each RFC is assigned a unique number that identifies the document. For example, RFC1212 defines the formal grammar for a Simple Network Management Protocol (SNMP) MIB. SNMP is a widely used protocol that enables interoperable network management. The SNMP protocol defines a set of commands that a management application may use to retrieve or change the value of items that a management agent is making available.
Within the MIB is a structure for organizing managed items. The structure is formed by defining a group or groups of related pieces of information. A group is defined by naming it and showing how it fits into an inherence tree. Groups may contain information in the form of items or "objects", subgroups, or a combination of the two. Each subgroup is configured like a group.
Within a group, data can be organized in one of two methods. A scalar item is a single piece of information within a group. A table is a structure for organizing data that requires more information to uniquely identify a single data item within a group of similar items.
Each item, whether scalar or part of a table, defined in a MIB includes a description which defines the item. Typically, the description includes SYNTAX, ACCESS, STATUS and DESCRIPTION clauses. The SYNTAX clause specifies the type of information which the item contains. Information types typically specified by the SYNTAX clause include INTEGER, OCTET STRING, Counter and DisplayString. INTEGER specifies that the value of the item should be interpreted as a number. OCTET STRING specifies that the value of the item should be interpreted as a string of octets, each having a value between 0 and 255. Counter specifies that the item is an INTEGER that has an implied range of zero to FFFFFFFF. DisplayString specifies that the item is an OCTET STRING where each octet is restricted to a printable ASCII character.
The ACCESS clause specifies the ways the item may be used and shows the actions which the agent may support for the item. ACCESS may be read-only, read-write or not-accessible. "Read-only" means that the value of the item management application but may not be altered. "Read-write" means that the item may be read and/or altered by a management application. "Not-accessible" is given as the access for organizational constructs that do not represent data items. Not-accessible is used only for table features and should not be used for a scalar item. The STATUS clause specifies whether the item is required for an agent that supports the defined group. A STATUS of mandatory means that the item will always be present if the defined group is supported by the agent. A STATUS of optional means that a particular implementation has the option of supporting the item. The DESCRIPTION clause contains a double quote delimited text description of the item. Finally, the item definition ends by specifying how the item fits into the MIB tree. The group the item belongs to is given, followed by the unique branch number within the group for the item.
Organizing a table requires the use of two additional operators, the SEQUENCE operator and the SEQUENCE OF operator. The SEQUENCE operator allows the definition of a new type that consists of several standard types in a specific order. The SEQUENCE OF operator allows the definition of a list of zero or more of the same type of elements. A table is formed by defining a SEQUENCE, typically called a table entry. A table is defined as a SEQUENCE OF the table entry type. As there is no data that is uniquely referred to by the name of the table or entry, the STATUS of the table and the table entry is not-accessible. The INDEX clause specifies the items that can be used to uniquely identify an element in the table.